using System;
using System.Collections;
using System.Runtime.InteropServices;
namespace BMC.ARSystem
{
	[ARStructTypeInfo(Name = "ARCOMMethodStruct", NumberOfMembers = 5u), ClassInterface, Guid("8d6ed800-e343-41da-ac84-7ff05f843550"), ProgId("BMC.ARSystem.COMMethod")]
	public class COMMethod
	{
		[ARStructMemTypeInfo(Name = "methodName", Offset = 0u)]
		private string _methodName;
		[ARStructMemTypeInfo(Name = "methodIId", Offset = 1u)]
		private string _methodIId;
		[ARStructMemTypeInfo(Name = "methodType", Offset = 2u)]
		private uint _methodType;
		[ARStructMemTypeInfo(Name = "methodValue", Offset = 3u)]
		private COMValue _methodValue;
		[ARStructMemTypeInfo(Name = "parameterList", Offset = 4u)]
		private ArrayList _parameterList;
		public string MethodName
		{
			get
			{
				return this._methodName;
			}
			set
			{
				this._methodName = value;
			}
		}
		public string MethodIId
		{
			get
			{
				return this._methodIId;
			}
			set
			{
				this._methodIId = value;
			}
		}
		public uint MethodType
		{
			get
			{
				return this._methodType;
			}
			set
			{
				this._methodType = value;
			}
		}
		public COMValue MethodValue
		{
			get
			{
				return this._methodValue;
			}
			set
			{
				this._methodValue = value;
			}
		}
		public ArrayList ParameterList
		{
			get
			{
				return this._parameterList;
			}
			set
			{
				this._parameterList = value;
			}
		}
		public COMMethod()
		{
		}
		internal COMMethod(object rawData, Server server)
		{
			int[] indexSpec = new int[1];
			this.MethodName = (string)Util.GetAt(rawData, indexSpec);
			this.MethodIId = (string)Util.GetAt(rawData, new int[]
			{
				1
			});
			this.MethodType = Convert.ToUInt32(Util.GetAt(rawData, new int[]
			{
				2
			}));
			this.MethodValue = (COMValue)ARTypeMgr.Instance.ObjectFromVariant(typeof(COMValue), Util.GetAt(rawData, new int[]
			{
				3
			}), server);
			this.ParameterList = ARTypeMgr.Instance.ArrayListFromVariant(Type.GetType("BMC.ARSystem.COMMethodParm"), (object[])Util.GetAt(rawData, new int[]
			{
				4
			}), server);
		}
		internal static COMMethod createInstance(object[] rawData, Server server)
		{
			return new COMMethod(rawData, server);
		}
	}
}
